package com.yunsc.order.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yunsc.common.serializer.TimestampToDateSerializer;
import com.yunsc.order.orderEnum.PayMethodConverter;
import lombok.Data;

/**
 * @version: 1.0
 * @Author: adan
 * @description:
 * @date: 2024-05-27 22:10
 */
@Data
// @ContentRowHeight(10)  // 设置内容行高
// @HeadRowHeight(25) // 设置标题行高
// @ColumnWidth(35) // 设置列宽
public class OrderExportVO {

    /**
     * 订单ID
     */
    @ExcelProperty(value = "订单ID")
    private Integer orderId;
    /**
     * 订单号
     */
    @ExcelProperty(value = "订单号")
    private String orderNo;
    /**
     * 订单类型(10实物订单)
     */
    @ExcelProperty(value = "订单类型")
    private String orderType;
    /**
     * 商品总金额(不含优惠折扣)
     */
    @ExcelProperty(value = "商品总金额")
    private String totalPrice;
    /**
     * 订单金额(含优惠折扣)
     */
    @ExcelProperty(value = "订单金额")
    private String orderPrice;
    /**
     * 优惠券抵扣金额
     */
    @ExcelProperty(value = "优惠券抵扣金额")
    private String couponMoney;
    /**
     * 积分抵扣金额
     */
    @ExcelProperty(value = "积分抵扣金额")
    private String pointsMoney;
    /**
     * 实际付款金额(包含运费)
     */
    @ExcelProperty(value = "实际付款金额")
    private String payPrice;
    /**
     * 后台修改的订单金额(差价)
     */
    @ExcelProperty(value = "后台修改的订单金额")
    private String updatePrice;
    /**
     * 买家留言
     */
    @ExcelProperty(value = "买家留言")
    private String buyerRemark;
    /**
     * 支付方式(余额/微信/支付宝)
     */
    @ExcelProperty(value = "支付方式", converter = PayMethodConverter.class)
    private String payMethod;
    /**
     * 付款状态(10未付款 20已付款)
     */
    @ExcelProperty(value = "付款状态")
    private String payStatus;
    /**
     * 付款时间
     */
    @ExcelProperty(value = "付款时间")
    @JsonSerialize(using = TimestampToDateSerializer.class)
    private String payTime;
    /**
     * 第三方交易记录ID
     */
    @ExcelProperty(value = "第三方交易记录ID")
    private Integer tradeId;
    /**
     * 配送方式(10快递配送 20门店自提 30无需配送)
     */
    @ExcelProperty(value = "配送方式")
    private String deliveryType;
    /**
     * 运费金额
     */
    @ExcelProperty(value = "运费金额")
    private String expressPrice;
    /**
     * 发货状态(10未发货 20已发货 30部分发货)
     */
    @ExcelProperty(value = "发货状态")
    private String deliveryStatus;
    /**
     * 发货时间
     */
    @ExcelProperty(value = "发货时间")
    @JsonSerialize(using = TimestampToDateSerializer.class)
    private String deliveryTime;
    /**
     * 收货状态(10未收货 20已收货)
     */
    @ExcelProperty(value = "收货状态")
    private String receiptStatus;
    /**
     * 收货时间
     */
    @ExcelProperty(value = "收货时间")
    @JsonSerialize(using = TimestampToDateSerializer.class)
    private String receiptTime;
    /**
     * 订单状态(10进行中 20取消 21待取消 30已完成)
     */
    @ExcelProperty(value = "订单状态")
    private String orderStatus;
    /**
     * 商家备注
     */
    @ExcelProperty(value = "商家备注")
    private String merchantRemark;
    /**
     * 订单是否已结算(0未结算 1已结算)
     */
    @ExcelProperty(value = "订单是否已结算")
    private String isSettled;
    /**
     * 订单结算时间
     */
    @ExcelProperty(value = "订单结算时间")
    @JsonSerialize(using = TimestampToDateSerializer.class)
    private String settledTime;
    /**
     * 是否已评价(0否 1是)
     */
    @ExcelProperty(value = "是否已评价")
    private String isComment;
    /**
     * 订单来源(10普通订单 20砍价订单 30秒杀订单)
     */
    @ExcelProperty(value = "订单来源")
    private String orderSource;
    /**
     * 来源客户端 (APP、H5、小程序等)
     */
    @ExcelProperty(value = "来源客户端")
    private String platform;
    /**
     * 用户ID
     */
    @ExcelProperty(value = "用户ID")
    private Integer userId;
    /**
     * 用户信息
     */
    @ExcelProperty(value = "用户信息")
    private String userInfo;
    /**
     * 创建时间
     */
    @ExcelProperty(value = "订单创建时间")
    @JsonSerialize(using = TimestampToDateSerializer.class)
    private String createTime;
    /**
     * 订单地址
     */
    @ExcelProperty(value = "订单收货地址")
    private String receiptAddress;

    // 订单用户
    @ExcelProperty(value = "收货人")
    private String receiptName;

    // 订单手机号
    @ExcelProperty(value = "联系电话")
    private String receiptPhone;

    // 订单商品
    @ExcelProperty(value = "商品信息")
    private String goodsDetail;

    @ExcelProperty(value = "第三方支付订单号")
    private String outTradeNo;

    @ExcelProperty(value = "支付流水号")
    private String tradeNo;

}
